home *** CD-ROM | disk | FTP | other *** search
/ NetObjects Fusion 7 / Fusion7.iso / NetObjects Fusion / data1.cab / Language_Resource_-_English / Components / SiteMapper / sitemapper.jar / SitemapComp / SitemapComp.class (.txt)
Encoding:
Java Class File  |  1999-10-19  |  9.9 KB  |  289 lines

  1. package SitemapComp;
  2.  
  3. import com.netobjects.nfc.api.CStringArray;
  4. import com.netobjects.nfc.api.ComponentApp;
  5. import com.netobjects.nfc.api.DAssetManager;
  6. import com.netobjects.nfc.api.DDrawPicture;
  7. import com.netobjects.nfc.api.DFile;
  8. import com.netobjects.nfc.api.DImage;
  9. import com.netobjects.nfc.api.DLayout;
  10. import com.netobjects.nfc.api.DMessageBox;
  11. import com.netobjects.nfc.api.DRect;
  12. import com.netobjects.nfc.api.DSite;
  13. import com.netobjects.nfc.api.DSize;
  14. import com.netobjects.nfc.api.IDInspector;
  15.  
  16. public class SitemapComp extends ComponentApp {
  17.    static final long serialVersionUID = 7965607546372163000L;
  18.    int[] idApplet;
  19.    int idImage;
  20.    int idScript;
  21.    int Gcontext;
  22.    boolean s_published;
  23.    DAssetManager assMan;
  24.    String m_codebase;
  25.    DDrawPicture thePicture;
  26.    String sepChar;
  27.    DFile tempfile;
  28.    String Version = "3.0.0";
  29.  
  30.    private void debug(String out) {
  31.       new DMessageBox();
  32.    }
  33.  
  34.    protected void onFinalize() {
  35.       int max = 12;
  36.       if (this.s_published) {
  37.          ++max;
  38.       }
  39.  
  40.       for(int i = 0; i < max; ++i) {
  41.          this.assMan.RemoveAsset(this.idApplet[i]);
  42.       }
  43.  
  44.       this.assMan.RemoveAsset(this.idImage);
  45.       this.assMan.RemoveAsset(this.idScript);
  46.    }
  47.  
  48.    public String getLocation(int image) {
  49.       String imageURL = this.assMan.GetAssetLocation(image, this.Gcontext, 1);
  50.       imageURL.replace(' ', '_');
  51.       imageURL.replace('\\', '/');
  52.       if (imageURL.indexOf(":/") > 0) {
  53.          imageURL.replace(':', '|');
  54.       }
  55.  
  56.       if (imageURL.indexOf(".//") == 0) {
  57.          imageURL = String.valueOf("./").concat(String.valueOf(imageURL.substring(3)));
  58.       } else {
  59.          imageURL.replace(':', '/');
  60.       }
  61.  
  62.       return imageURL;
  63.    }
  64.  
  65.    public void migrationPatch() {
  66.       if (this.idApplet.length < 13) {
  67.          this.Version = "3.0.0";
  68.          int[] tempArray = this.idApplet;
  69.          this.idApplet = new int[13];
  70.  
  71.          for(int ind = 0; ind < tempArray.length; ++ind) {
  72.             this.idApplet[ind] = tempArray[ind];
  73.          }
  74.  
  75.          this.s_published = false;
  76.          if (this.idScript > 0) {
  77.             this.assMan.RemoveAsset(this.idScript);
  78.          }
  79.  
  80.          this.idApplet[12] = 0;
  81.  
  82.          for(int ind = 0; ind < this.idApplet.length; ++ind) {
  83.             if (this.idApplet[ind] > 0) {
  84.                this.assMan.RemoveAsset(this.idApplet[ind]);
  85.             }
  86.          }
  87.  
  88.          this.idApplet[0] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.class")), "Applets/Plug-ins", "/");
  89.          this.idApplet[1] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("button_panel.class")), "Applets/Plug-ins", "/");
  90.          this.idApplet[2] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("check_box_panel.class")), "Applets/Plug-ins", "/");
  91.          this.idApplet[3] = 0;
  92.          this.idApplet[4] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("nav_canvas.class")), "Applets/Plug-ins", "/");
  93.          this.idApplet[5] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("outline_list.class")), "Applets/Plug-ins", "/");
  94.          this.idApplet[6] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("search_panel.class")), "Applets/Plug-ins", "/");
  95.          this.idApplet[7] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_entry.class")), "Applets/Plug-ins", "/");
  96.          this.idApplet[8] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_grid_builder.class")), "Applets/Plug-ins", "/");
  97.          this.idApplet[9] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("web_structure_builder.class")), "Applets/Plug-ins", "/");
  98.          this.idApplet[10] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.cab")), "Applets/Plug-ins", "/");
  99.          this.idApplet[11] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.zip")), "Applets/Plug-ins", "/");
  100.       }
  101.  
  102.    }
  103.  
  104.    public void onCopy() {
  105.       this.assMan.CopyAsset(this.idImage);
  106.       this.assMan.CopyAsset(this.idScript);
  107.       int[] tempIdApplet = new int[12];
  108.  
  109.       for(int i = 0; i < 12; ++i) {
  110.          tempIdApplet[i] = this.idApplet[i];
  111.          this.assMan.CopyAsset(this.idApplet[i]);
  112.       }
  113.  
  114.       this.idApplet = tempIdApplet;
  115.    }
  116.  
  117.    public void onDrop(DLayout layout, DRect r, int fDrop) {
  118.       if (fDrop == 1) {
  119.          this.tempfile = new DFile();
  120.          this.sepChar = this.tempfile.GetPathChar();
  121.          this.thePicture = new DDrawPicture();
  122.          this.m_codebase = this.thePicture.getCodeBase();
  123.          this.idApplet = new int[13];
  124.          this.idImage = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.gif")), "Image", "/");
  125.          this.idApplet[0] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.class")), "Applets/Plug-ins", "/");
  126.          this.idApplet[1] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("button_panel.class")), "Applets/Plug-ins", "/");
  127.          this.idApplet[2] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("check_box_panel.class")), "Applets/Plug-ins", "/");
  128.          this.idApplet[3] = 0;
  129.          this.idApplet[4] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("nav_canvas.class")), "Applets/Plug-ins", "/");
  130.          this.idApplet[5] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("outline_list.class")), "Applets/Plug-ins", "/");
  131.          this.idApplet[6] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("search_panel.class")), "Applets/Plug-ins", "/");
  132.          this.idApplet[7] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_entry.class")), "Applets/Plug-ins", "/");
  133.          this.idApplet[8] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("tree_grid_builder.class")), "Applets/Plug-ins", "/");
  134.          this.idApplet[9] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("web_structure_builder.class")), "Applets/Plug-ins", "/");
  135.          this.idApplet[10] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.cab")), "Applets/Plug-ins", "/");
  136.          this.idApplet[11] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.zip")), "Applets/Plug-ins", "/");
  137.          String bmpFile = this.assMan.GetAssetLocation(this.idImage, 0, 1);
  138.          this.thePicture.setImageFile(bmpFile);
  139.          DImage imageSizer = new DImage();
  140.          imageSizer.setImageFile(bmpFile);
  141.          DSize currentImageSize = imageSizer.getSize();
  142.          this.thePicture.SetPositionRect(r.getLeft(), r.getTop(), r.getLeft() + currentImageSize.getWidth(), r.getTop() + currentImageSize.getHeight());
  143.          this.thePicture.setStretch(1);
  144.          layout.AddObject(this.thePicture);
  145.          DLayout currentILayout = this.thePicture.getLayout();
  146.          DSite site = currentILayout.getSite();
  147.          this.s_published = false;
  148.       }
  149.  
  150.    }
  151.  
  152.    public void onInspect(CStringArray Names, CStringArray Types) {
  153.       Names.Set("Image");
  154.       Types.Set("Image");
  155.    }
  156.  
  157.    public String onInstall(DAssetManager cam, String codebase) {
  158.       this.m_codebase = codebase;
  159.       this.assMan = cam;
  160.       return "Site Mapper";
  161.    }
  162.  
  163.    public void onPublish(DAssetManager asm, int context) {
  164.       this.assMan = asm;
  165.       this.m_codebase = this.thePicture.getCodeBase();
  166.       if (this.idApplet[3] > 0) {
  167.          asm.RemoveAsset(this.idApplet[3]);
  168.       }
  169.  
  170.       this.migrationPatch();
  171.       this.Gcontext = context;
  172.       this.thePicture.setHTMLBefore("<a href =\"JavaScript:go();\" target=\"_self\">");
  173.       this.thePicture.setHTMLAfter("</a>");
  174.       int sm = this.assMan.GetFileNumber(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html")));
  175.       if (sm == 0) {
  176.          if (this.idApplet[12] > 0) {
  177.             this.assMan.RemoveAsset(this.idApplet[12]);
  178.          }
  179.  
  180.          this.s_published = false;
  181.       }
  182.  
  183.       this.updateSitemapperHTML(context);
  184.       new DFile();
  185.       DLayout currentILayout = this.thePicture.getLayout();
  186.       String homePath = currentILayout.GetHomePath();
  187.       sm = this.idApplet[12];
  188.       String sm_l = this.assMan.GetAssetLocation(sm, context, 1);
  189.       String buffer = "<script language=\"JavaScript\">\n";
  190.       buffer = String.valueOf(buffer).concat(String.valueOf("<!--\n"));
  191.       buffer = String.valueOf(buffer).concat(String.valueOf("top.name=\"netobjects_main_power\";\n"));
  192.       buffer = String.valueOf(buffer).concat(String.valueOf("function go(){\n"));
  193.       buffer = String.valueOf(buffer).concat(String.valueOf("//use time to create navigator name(allow random).\n"));
  194.       buffer = String.valueOf(buffer).concat(String.valueOf("  if (navigator.userAgent.substring(0,9) != \"Mozilla/2\"){\n"));
  195.       buffer = String.valueOf(buffer).concat(String.valueOf("   //3.0 and above\n"));
  196.       buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf("    var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
  197.       buffer = String.valueOf(buffer).concat(String.valueOf("  }\n"));
  198.       buffer = String.valueOf(buffer).concat(String.valueOf("  else if  (window.name == \"netobjects_main_power\"){\n"));
  199.       buffer = String.valueOf(buffer).concat(String.valueOf("    //2.0 re-entry position - main window already have name\n"));
  200.       buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf("    var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
  201.       buffer = String.valueOf(buffer).concat(String.valueOf("  }\n"));
  202.       buffer = String.valueOf(buffer).concat(String.valueOf("  else {\n"));
  203.       buffer = String.valueOf(buffer).concat(String.valueOf("    //2.0\n"));
  204.       buffer = String.valueOf(buffer).concat(String.valueOf("    var Replace = window.open(window.location,\"netobjects_main_power\");\n"));
  205.       buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf("    var WinName = window.open('").concat(String.valueOf(sm_l))).concat(String.valueOf("','netobjects_nav','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=385,height=335');\n"))));
  206.       buffer = String.valueOf(buffer).concat(String.valueOf("    window.close();\n"));
  207.       buffer = String.valueOf(buffer).concat(String.valueOf("  }\n"));
  208.       buffer = String.valueOf(buffer).concat(String.valueOf("}\n"));
  209.       buffer = String.valueOf(buffer).concat(String.valueOf("//-->\n"));
  210.       buffer = String.valueOf(buffer).concat(String.valueOf("</script>\n"));
  211.       currentILayout.setHTMLBefore(buffer);
  212.    }
  213.  
  214.    public String PropertyListener(String Event, String Value, int Get, int propIndex, IDInspector insp) {
  215.       if (Get == 1) {
  216.          if (Event.compareTo("Image") == 0) {
  217.             return Integer.toString(this.idImage);
  218.          }
  219.       } else if (Event.compareTo("Image") == 0) {
  220.          this.assMan.RemoveAsset(this.idImage);
  221.          this.idImage = Integer.parseInt(Value, 10);
  222.          this.thePicture.setImageFile(this.assMan.GetAssetLocation(this.idImage, 1, 1));
  223.       }
  224.  
  225.       return "";
  226.    }
  227.  
  228.    public String stringToJavaScriptHTML(String string) {
  229.       StringBuffer result = new StringBuffer();
  230.  
  231.       for(int i = 0; i < string.length(); ++i) {
  232.          char curChar = string.charAt(i);
  233.          switch (curChar) {
  234.             case '"':
  235.                result = result.append(""");
  236.                break;
  237.             case '\'':
  238.                result = result.append("\\'");
  239.                break;
  240.             default:
  241.                result = result.append(curChar);
  242.          }
  243.       }
  244.  
  245.       return result.toString();
  246.    }
  247.  
  248.    public void updateSitemapperHTML(int context) {
  249.       DLayout currentILayout = this.thePicture.getLayout();
  250.       DSite site = currentILayout.getSite();
  251.       new DMessageBox();
  252.       String sitemapperHTML = String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html"));
  253.       DFile outFile = new DFile();
  254.       String sourceFileValue = site.getSiteInfo();
  255.       sourceFileValue = this.stringToJavaScriptHTML(sourceFileValue);
  256.       if (outFile.Open(sitemapperHTML, 4097)) {
  257.          String buffer = "<HTML>\n";
  258.          buffer = String.valueOf(buffer).concat(String.valueOf("<HEAD>\n"));
  259.          buffer = String.valueOf(buffer).concat(String.valueOf("<TITLE> Site Mapper </TITLE>\n"));
  260.          buffer = String.valueOf(buffer).concat(String.valueOf("</HEAD>\n"));
  261.          buffer = String.valueOf(buffer).concat(String.valueOf("<BODY BGCOLOR=\"#ffffff\" onload=\"if(navigator.userAgent.substring(0,9) == 'Mozilla/3'){focus()}\">\n"));
  262.          buffer = String.valueOf(buffer).concat(String.valueOf("<script language=\"JavaScript\">\n"));
  263.          buffer = String.valueOf(buffer).concat(String.valueOf("<!--\n"));
  264.          buffer = String.valueOf(buffer).concat(String.valueOf("document.write('<APPLET CODE=\"Sitemapper.class\""));
  265.          outFile.WriteString(buffer, -1);
  266.          if (context == 0 || context == 1) {
  267.             this.m_codebase.replace('\\', '/');
  268.             outFile.WriteString(String.valueOf(String.valueOf(" CODEBASE=\"file:///").concat(String.valueOf(this.m_codebase))).concat(String.valueOf("\"")), -1);
  269.          }
  270.  
  271.          buffer = " ARCHIVE=\"Sitemapper.zip\" WIDTH=350 HEIGHT=300>');\n";
  272.          buffer = String.valueOf(buffer).concat(String.valueOf("document.write('<param name=\"cabbase\" value=\"Sitemapper.cab\">');\n"));
  273.          buffer = String.valueOf(buffer).concat(String.valueOf(String.valueOf(String.valueOf("document.write('<param name=\"source_file\" value=\"").concat(String.valueOf(sourceFileValue))).concat(String.valueOf("\">');\n"))));
  274.          buffer = String.valueOf(buffer).concat(String.valueOf("document.write('</APPLET>');\n"));
  275.          buffer = String.valueOf(buffer).concat(String.valueOf("//-->\n"));
  276.          buffer = String.valueOf(buffer).concat(String.valueOf("</script>\n"));
  277.          buffer = String.valueOf(buffer).concat(String.valueOf("</BODY>\n"));
  278.          buffer = String.valueOf(buffer).concat(String.valueOf("</HTML>\n"));
  279.          outFile.WriteString(buffer, -1);
  280.          outFile.Close();
  281.          if (!this.s_published) {
  282.             this.idApplet[12] = this.assMan.AddAsset(String.valueOf(this.m_codebase).concat(String.valueOf("Sitemapper.html")), "HTML", "/");
  283.             this.s_published = true;
  284.          }
  285.  
  286.       }
  287.    }
  288. }
  289.